package networkmapping;

import java.io.*;
import java.net.*;
import java.util.*;
public class Client {

	public static void main(String[] args) throws Exception{
		Socket client=new Socket("192.168.1.2",1550);
		BufferedReader user=new BufferedReader(new InputStreamReader(System.in));
		DataInputStream in=new DataInputStream((client.getInputStream()));
		DataOutputStream out=new DataOutputStream(client.getOutputStream());
		String comando;
		int i;
		boolean riconosciuto;
		Vector operazioni=new Vector();
		operazioni.addElement("GET");
		operazioni.addElement("PUT");
		operazioni.addElement("QUIT");
		operazioni.addElement("DIR");
		operazioni.addElement("CD");
		while(true){
			riconosciuto=false;
			System.out.print(":>");
			comando=user.readLine();
			if((comando.startsWith("GET"))||(comando.startsWith("get"))){
				riconosciuto=true;
				out.writeBytes(comando+"\n");
				String nomeFile=comando.substring(4);
				File file=new File(nomeFile);
				FileOutputStream fileOut=new FileOutputStream(file);
				byte b;
				long k=0;
				long l=in.readLong();
			
				while(k!=l){
				b=in.readByte();
				fileOut.write(b);
				k++;
				}
				
				System.out.println("Trasferimento del file "+nomeFile+" completato");
			}
				
				if(comando.startsWith("PUT")||comando.startsWith("put")){
					
					riconosciuto=true;
				}
					
				if(comando.startsWith("QUIT")||comando.startsWith("quit")){
					riconosciuto=true;
				}
					
				if(comando.startsWith("DIR")||comando.startsWith("dir")){
					riconosciuto=true;
				}
				
				if(comando.startsWith("CD")||comando.startsWith("cd")){
					riconosciuto=true;
				}
				if(riconosciuto==false)
					System.out.println("Comando non riconosciuto..");	
			}

}
}
